package com.zzuli.yxypre.service;

import com.zzuli.yxypre.comment.R;
import com.zzuli.yxypre.entity.Comment;
import com.zzuli.yxypre.entity.Sheet;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * @auther pony
 * @create 2023-05-09 13:37
 */
public interface SheetService {
    /**
     * 根据 歌单 id 获取一张 歌单信息
     * @param id
     * @return
     */
    R getOneById(Integer id, HttpServletRequest request);

    /**
     * 获取歌单的分页评论数据
     * @param order 排序关键字
     * @param sheetId 歌单id
     * @param pageCurrent 当前页
     * @param pageSize 每页大小
     * @return
     */
    R commentPage(String order, Integer sheetId, Integer pageCurrent, Integer pageSize, HttpServletRequest request);

    /**
     * 为歌单，添加评论
     * @param comment
     * @param request
     * @return
     */
    R addComment(Comment comment, HttpServletRequest request);

    /**
     * 为歌单评论点赞
     * @param commentId 评论id
     * @param flag 1：点赞 0：取消点赞
     * @param request
     * @return
     */
    R thumbs(Integer commentId, Integer flag, HttpServletRequest request);

    /**
     * 修改歌单 type 标签
     * @param id
     * @param tagArr
     * @return
     */
    R addType(Integer id, String[] tagArr);

    /**
     * 添加歌单
     * 歌单图片，请参考上面的上传方法
     * @param sheet
     * @return
     */
    R addSheet(Sheet sheet,HttpServletRequest request);

    /**
     * 修改歌单
     * 歌单图片，请参考下面的各自的上传方法
     * @param sheet
     * @return
     */
    R updateSheet(Sheet sheet, HttpServletRequest request);

    /**
     * 删除歌单
     * 歌单图片，请参考下面的各自的上传方法
     * @param sheetId
     * @return
     */
    R deleteSheet(Integer sheetId, HttpServletRequest request);

    /**
     * 添加歌单-上传歌单图片
     * @param file 图片
     * @return
     */
    R uploadAddImg(MultipartFile file);

    /**
     * 为专辑添加歌曲
     * @param sheetId
     * @param request
     * @return
     */
    R addSong(Integer sheetId, Integer songId, HttpServletRequest request);
}
